import http, { HttpResponse } from '../http'

// 获取菜单列表
export const httpGetMenuList = () => http('get', '/menu/menuList')

// 请求参数 - 登录
export interface LoginParams {
    /** @description 账号 */
    username: string
    /** @description 密码 */
    password: string
}

// 请求结果 - 登录
export interface SystemInfo {
    /** @description 管理员头像 */
    adminImgUrl?: string
    /** @description 管理员名称 */
    adminName: string
    /** @description 管理员手机号 */
    adminPhone: string
    /** @description 公司主体 */
    companyEntity: string
    /** @description 管理员 id */
    id?: string
    /** @description 系统图片 */
    systemImgUrl: string
    /** @description 系统名称 */
    systemName?: string
    /** @description 管理员账号 */
    account: string
}

// 请求结果 - 登录
interface LoginResult extends HttpResponse {
    data: {
        token: string
        userInfo: SystemInfo
    }
}

// 登录接口
export const httpLoginSystem = (params: LoginParams): Promise<LoginResult> => http('get', '/login', params)

// 请求参数 - 修改密码
export interface ChangePwdParams {
    /** @description 管理员 id */
    id: number
    /** @description 原密码 */
    oldPwd: string
    /** @description 新密码 */
    newPwd: string
}

// 修改密码
export const httpChangePwd = (params: ChangePwdParams) => http('post', '/changePwd', params)

// 请求参数 - 修改信息
export interface AccountInfoParams {
    /** @description 管理员 id */
    id: number
    /** @description 管理员名称 */
    adminName: string
    /** @description 管理员手机号 */
    adminPhone: string
    /** @description 公司主体 */
    companyEntity: string
}

// 请求参数 - 修改头像
export interface SystemImgUrlParams {
    /** @description 管理员 id */
    id: number
    /** @description 系统图片 */
    systemImgUrl: string
}

// 修改账户信息
export const httpAccountInfo = (params: AccountInfoParams | SystemImgUrlParams) => http('post', '/updateAccountInfo', params)
